/*
 * @Author: WuFeng <763467339@qq.com>
 * @Date: 2022-04-12 14:42:27
 * @LastEditTime: 2023-06-29 16:57:27
 * @LastEditors: WuFeng <763467339@qq.com>
 * @Description: 模块信息配置
 * @FilePath: \vue3-element-plus-web\src\config\module.js
 * @Copyright 版权声明
 */
import { defineAsyncComponent, shallowRef } from 'vue'

export const GLOBAL_MODULE = {
  // DRAWER_DEMO 模块配置
  DRAWER_DEMO: {
    // 模块名称
    name: 'Drawer DEMO',
    // 模块名称英文标识
    value: 'DRAWER_DEMO',
    // 抽屉相关配置
    drawer: {
      // 抽屉入口组件
      components: shallowRef(defineAsyncComponent(() => import('@/views/DrawerDemo/components/Drawer/index.vue'))),
      // 抽屉类型枚举
      type: {
        CREATE: {
          // 名称
          name: '新建',
          // 标识
          value: 'CREATE',
          // 是否在关闭 Drawer时 二次确认
          closeConfirm: true,
        },
        UPDATE: {
          name: '编辑',
          value: 'UPDATE',
          closeConfirm: true,
        },
        DETAIL: {
          name: '详情',
          value: 'DETAIL',
        },
      },
    },
  },
  // DRAWER_NEST_DEMO 模块配置
  DRAWER_NEST_DEMO: {
    // 模块名称
    name: 'Drawer Nest DEMO',
    // 模块名称英文标识
    value: 'DRAWER_NEST_DEMO',
    // 抽屉相关配置
    drawer: {
      // 抽屉入口组件
      componentsName: 'DrawerNestDemoDrawer',
      components: shallowRef(defineAsyncComponent(() => import('@/views/Demo/DrawerNestDemo/components/Drawer/index.vue'))),
      // 抽屉类型枚举
      type: {
        CREATE: {
          // 名称
          name: '新建',
          // 标识
          value: 'CREATE',
          // 是否在关闭 Drawer时 二次确认
          closeConfirm: true,
        },
        UPDATE: {
          name: '编辑',
          value: 'UPDATE',
          closeConfirm: true,
        },
        DETAIL: {
          name: '详情',
          value: 'DETAIL',
        },
      },
    },
  },

  // 系统资源管理 模块配置
  SYS_RESOURCE_MANAGE: {
    // 模块名称
    name: '资源管理',
    // 模块名称英文标识
    value: 'SYS_RESOURCE_MANAGE',
    // 抽屉相关配置
    drawer: {
      // 抽屉入口组件
      components: shallowRef(defineAsyncComponent(() => import('@/views/SysManage/Resource/components/Drawer/index.vue'))),
      // 抽屉类型枚举
      type: {
        CREATE: {
          name: '新建资源',
          value: 'CREATE',
          closeConfirm: true,
        },
        UPDATE: {
          name: '编辑资源',
          value: 'UPDATE',
          closeConfirm: true,
        },
        DETAIL: {
          name: '资源详情',
          value: 'DETAIL',
        },
        MOVE: {
          name: '移动资源',
          value: 'MOVE',
          closeConfirm: true,
        },
        DATA_AUTH: {
          name: '数据权限配置',
          value: 'DATA_AUTH',
          closeConfirm: true,
        },
      },
    },
  },

  // 系统角色管理 模块配置
  SYS_ROLE_MANAGE: {
    // 模块名称
    name: '角色管理',
    // 模块名称英文标识
    value: 'SYS_ROLE_MANAGE',
    // 抽屉相关配置
    drawer: {
      // 抽屉入口组件
      componentsName: 'SysRoleManageDrawer',
      components: shallowRef(defineAsyncComponent(() => import('@/views/SysManage/Role/components/Drawer/index.vue'))),
      // 抽屉类型枚举
      type: {
        CREATE: {
          name: '新建角色',
          value: 'CREATE',
          closeConfirm: true,
        },
        UPDATE: {
          name: '编辑角色',
          value: 'UPDATE',
          closeConfirm: true,
        },
        DETAIL: {
          name: '角色详情',
          value: 'DETAIL',
        },
        AUTH: {
          name: '角色授权',
          value: 'AUTH',
          closeConfirm: true,
        },
      },
    },
  },

  // 系统部门管理 模块配置
  SYS_DEPT_MANAGE: {
    // 模块名称
    name: '部门管理',
    // 模块名称英文标识
    value: 'SYS_DEPT_MANAGE',
    // 抽屉相关配置
    drawer: {
      // 抽屉入口组件
      components: shallowRef(defineAsyncComponent(() => import('@/views/SysManage/Dept/components/Drawer/index.vue'))),
      // 抽屉类型枚举
      type: {
        CREATE: {
          name: '新建部门',
          value: 'CREATE',
          closeConfirm: true,
        },
        UPDATE: {
          name: '编辑部门',
          value: 'UPDATE',
          closeConfirm: true,
        },
        DETAIL: {
          name: '部门详情',
          value: 'DETAIL',
        },
      },
    },
  },

  // 系统用户管理 模块配置
  SYS_USER_MANAGE: {
    // 模块名称
    name: '用户管理',
    // 模块名称英文标识
    value: 'SYS_USER_MANAGE',
    // 抽屉相关配置
    drawer: {
      // 抽屉入口组件
      components: shallowRef(defineAsyncComponent(() => import('@/views/SysManage/SysUser/components/Drawer/index.vue'))),
      // 抽屉类型枚举
      type: {
        CREATE: {
          name: '新建用户',
          value: 'CREATE',
          closeConfirm: true,
        },
        UPDATE: {
          name: '编辑用户',
          value: 'UPDATE',
          closeConfirm: true,
        },
        DETAIL: {
          name: '角色用户',
          value: 'DETAIL',
        },
      },
    },
  },

  // 系统字典管理 模块配置
  SYS_DICT_MANAGE: {
    // 模块名称
    name: '字典管理',
    // 模块名称英文标识
    value: 'SYS_DICT_MANAGE',
    // 抽屉相关配置
    drawer: {
      // 抽屉入口组件
      components: shallowRef(defineAsyncComponent(() => import('@/views/SysManage/SysDict/components/Drawer/index.vue'))),
      // 抽屉类型枚举
      type: {
        CREATE: {
          name: '新建字典',
          value: 'CREATE',
          closeConfirm: true,
        },
        UPDATE: {
          name: '编辑字典',
          value: 'UPDATE',
          closeConfirm: true,
        },
        DETAIL: {
          name: '角色字典',
          value: 'DETAIL',
        },
      },
    },
  },

  // 系统日志 模块配置
  SYS_LOG_MANAGE: {
    // 模块名称
    name: '系统日志',
    // 模块名称英文标识
    value: 'SYS_LOG_MANAGE',
    // 抽屉相关配置
    drawer: {
      // 抽屉入口组件
      components: shallowRef(defineAsyncComponent(() => import('@/views/SysManage/SysLog/components/Drawer/index.vue'))),
      // 抽屉类型枚举
      type: {
        DETAIL: {
          name: '日志详情',
          value: 'DETAIL',
        },
      },
    },
  },

  // 系统监控 模块配置
  SYS_MONITOR: {
    // 模块名称
    name: '系统监控',
    // 模块名称英文标识
    value: 'SYS_MONITOR',
    // 抽屉相关配置
    drawer: {
      // 抽屉入口组件
      components: shallowRef(defineAsyncComponent(() => import('@/views/SysManage/Monitor/components/Drawer/index.vue'))),
      // 抽屉类型枚举
      type: {
        SETTINGS: {
          name: '监控设置',
          value: 'SETTINGS',
          closeConfirm: true,
        },
      },
    },
  },

  // 前端代码生成 模块设置
  SYS_GENDER_CODE: {
    // 模块名称
    name: '前端代码生成',
    // 模块名称英文标识
    value: 'SYS_GENDER_CODE',
    // 抽屉相关配置
    drawer: {
      // 抽屉入口组件
      components: shallowRef(defineAsyncComponent(() => import('@/views/SysManage/GenderCode/components/Drawer/index.vue'))),
      // 抽屉类型枚举
      type: {
        SETTINGS: {
          name: '前端代码生成',
          value: 'SETTINGS',
          closeConfirm: true,
        },
      },
    },
  },
}
